Cloud Functions にサービスアカウントキーを渡す
何も渡さない
単に GET できる
logging にログ書ける
firestore の doc を作ったり更新できる
bigquery の dataset をリストできる
logging と firestore にアクセスできるロールの鍵を渡す
--role=roles/logging.logWriter
--role=roles/datastore.user
CLI から 1度に複数指定できないことでハマってた...
単に GET できる
logging にログ書ける
firestore の doc を作ったり更新できる
bigquery の dataset をリスト化できない
意図どおり
API の感じからか 500 にはなってない(多分エラーが返り値に入ってる?)
鍵を渡すけど何の role もついてない
単に GET できる
Cloud Functions を動かすロールみたいなのは要らない(同上)
logging にログ書けない
https://gyazo.com/8da24d0165313a502a816ca241d6569c
Error: 7 PERMISSION_DENIED: The caller does not have permission at Object.callErrorFromStatus
firestore の doc を取得できない
Error: 7 PERMISSION_DENIED: The caller does not have permission
bigquery の dataset をリスト化できない
---.icon
まあなんかサービスアカウント作ってロールつけて渡せばうまくいく
あとからロールつけてもうまくいく、タイムラグは分以下かな?
---.icon
デフォルト以外のサービス アカウントで関数をデプロイするには、デプロイするサービス アカウントに対する iam.serviceAccounts.actAs 権限がデプロイ側に必要です。
デプロイ時に --service-account=SERVICE_ACCOUNT_EMAIL で渡せるらしい
とはいえデフォルトは単に --service-account=PROJECT_ID@appspot.gserviceaccount.com なのだとすると同じような問題が起きそう
→ コード読んだ結果、普通に起きそう